"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/13 10:22
@Description : 
字典的操作
1. 列表 [1,2.3]
2. 元组 (1,2,3)
3. 集合 {1,2,3}

存储多个学生成绩
[90,85,76,54]    张三考了多少分？
key:value   zs:90,lisi:85

字典在存储数据时  支持使用键值对的形式
1. 字典的定义  {}  dict()
2. 数据存储的特点
    2.1 k:v
    2.2 key不能重复   key要是不可被改变的数据   str 常用    元组
3. 字典操作
"""
# 定义空字典      dict
# dic = {}
dic = dict()
print(dic, type(dic))
#  动态实现键值对的添加   添加
dic['username'] = 'super'
dic['password'] = '666666'
dic['age'] = 30
print(dic)

# 字典[key] = value     age key 字典中已存在  修改
dic['age'] = 20
print(dic)

# 字典初始化
user = {
    'username': 'admin',
    'password': '123456',
    'age': 25
}
# 动态操作
user['gender'] = 'male'
print(user)

print('--------------------字典的操作------------------------')
#  获取指定key对用的value
print('username:', user['username'])
print('age:', user['age'])
# print('gender:',user['sex'])   # 指定的key不存在    KeyError
# print('gender:',user.get('gender'))
print('gender:', user.get('sex'))  # 指定的key不存在      返回 None  没有异常
print('gender:', user.get('sex', '男'))  # 指定的key不存在      返回默认值  没有异常

# 更新键值对
# user['username'] = 'xiaoming'
# 实现批量更新
# user.update({'username':'xiaoming','info':'这是一个用户的基本介绍'})
user.update(username='xiaoming', age=30, info='这是一个用户的基本介绍')
print(user)

# 获取字典中所有的key
keys = user.keys()
for key in keys:
    print(key)
# 获取字典中所有value
for val in user.values():
    print(val)

# 遍历字典
for k, v in user.items():
    print(k, ":", v)

# 删除键值对
# del user['info']
user.pop('info')
print(user)

# 清空字典
user.clear()
print(user)

print('------------------字典中key----------------------')
#  key需要保证是一个不可变元素即可   key常用的形式是str
dic = {
    'username': 'admin',
    1: 'num',
    (2,): 'tuple'
}
print(dic)

# 元组中只有一个元素时  需要加一个, 否则不会识别为元组
tup = (1,)
print(tup, type(tup))
